define(function (require, exports, module) {
        exports.init = function (element, cb) {
                var basic = require('basic');
                var jsonAPI = require('json-api');
                var mustache = require('mustache');
                var async=require('async');
                require('pingpp');


                var isLeft=false;
                var id = getQueryParam('id');
                var code = getQueryParam('code');
                var totalFee, cuuid;
                var url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx95f1a889c5042df0&redirect_uri=" + encodeURIComponent(location.href) + "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";

                console.log(url);

                $("#payMethod li").click(function () {
                        $("#payMethod li").removeClass("on");
                        $(this).addClass("on")
                })

                $("#title").text('支付订单');
                defineModule({
                        getOpenId: function (cb) {
                                jsonAPI.restful('/api/getOpenId', {code: code}, function (err, result) {
                                        if (jsonAPI.handleErrors(err, result)) {
                                                //alert('openId 获取到啦:' + JSON.stringify(result))
                                                basic.saveUserOpenId(result.result)
                                        }
                                        cb && cb(err, result);
                                });
                        },
                        getPaymentInfo:function(cb)
                        {
                                var mobile=basic.getLoginUser();
                                jsonAPI.restful('/api/payment/read', {mobile:mobile,id:id}, function (err, result) {
                                        if (jsonAPI.handleErrors(err, result)) {
                                                console.log(JSON.stringify(result));
                                                var data=result.result;
                                                totalFee = data.parkingfee / 100;
                                                if(data.lefttime)
                                                {
                                                        isLeft=true;
                                                }
                                                $("#fee").text(totalFee);
                                        }
                                        cb&&cb(err, result);
                                });
                        },
                        getCoupon:function(cb)
                        {
                                var mobile=basic.getLoginUser();
                                jsonAPI.restful('/api/verifyCoupon/list', {mobile:mobile}, function (err, result) {
                                        if (jsonAPI.handleErrors(err, result)) {
                                                var tpl = $('#tpl_coupon').html();
                                                console.log(JSON.stringify(result));
                                                var content = mustache.render(tpl, mustache.normalizeInput(result));
                                                $('#CouponList').html(content);
                                        }
                                        cb && cb(err, result);
                                });
                        },
                 /*       showCoupinConfirm:function()
                        {

                                $spa.confirm('使用优惠码','<input class="weui_input" id="CouponNum" type="text" placeholder="请输入优惠码"/>',function()
                                {
                                        setTimeout(function()
                                        {
                                                $module.validate()
                                        },500)
                                });

                        }*/

                        scan :function()
                        {
                                wx.scanQRCode({
                                        needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
                                        scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码，默认二者都有
                                        success: function (res) {
                                               // var result = res.resultStr; // 当needResult 为 1 时，扫码返回的结果
                                               // alert(JSON.stringify(res.resultStr.scan_code.scan_result));
                                                $("#CouponNum").val(JSON.stringify(res.resultStr));
                                        }
                                });
                        },
                        validate:function()
                        {
                                $spa.showLoading('正在验证优惠码');
                                setTimeout(function()
                                {
                                        var inputid=$('#CouponNum').val();
                                        if(!inputid||inputid.length==0)
                                        {
                                                $spa.hideLoading();
                                                $spa.showErrorMsg('请输入正确的优惠码');
                                                // $('#CouponNum').focus();
                                                return;
                                        }
                                        var mobile=basic.getLoginUser();
                                        jsonAPI.restful('/api/verifyCoupon/validate', {mobile:mobile,cuuid:inputid}, function (err, result) {
                                                if (jsonAPI.handleErrors(err, result)) {
                                                        $spa.hideLoading();
                                                        $spa.showOk('优惠码验证成功');
                                                        setTimeout(function () {
                                                                $spa.hideOk();
                                                                cuuid=inputid;
                                                                var discount=parseInt(result.result.discount/100);
                                                                //  $("#fee").text(totalFee - parseInt(discount));
                                                                //    $("#showDiscount").text("优惠码减 " + discount + "元");
                                                                //    $('#btnPay').show();

                                                                $spa.confirm("支付确认","您输入的优惠码可优惠"+discount+"元,需付费"+(totalFee - parseInt(discount))+"元,确认支付么?",
                                                                        function()
                                                                        {
                                                                                $module.pay();
                                                                        })
                                                                // $module.pay();
                                                        }, 1000);
                                                }
                                                else{
                                                        $spa.hideLoading();
                                                        //   $('#CouponNum').focus();
                                                }
                                        });


                                },500)

                        },
                        pay: function () {
                                var param = {
                                        "id": id,
                                        "openid": basic.getOpenId(),
                                        "mobile": basic.getLoginUser,
                                        "cuuid": cuuid
                                }
                                jsonAPI.restful('/api/payment/getCharge', param, function (err, result) {
                                        if (jsonAPI.handleErrors(err, result)) {
                                                var charge = result.result;
                                                console.log('charge:'+JSON.stringify(charge));
                                                pingpp.createPayment(charge, function (result, error) {
                                                        if (result == "success") {
                                                                $spa.showOk('支付成功');
                                                                setTimeout(function () {
                                                                        $spa.hideOk();
                                                                        if(!isLeft)
                                                                        {
                                                                                window.hashTo("#orderRecord")
                                                                        }
                                                                        else //如果还没有离场,支付后跳转到倒计时页面
                                                                        window.hashTo("#orderLeft",{id:id});
                                                                }, 2000);
                                                                // 只有微信公众账号 wx_pub 支付成功的结果会在这里返回，其他的 wap 支付结果都是在 extra 中对应的 URL 跳转。
                                                        } else if (result == "fail") {
                                                                $spa.showErrorMsg("charge不正确或者微信公众账号支付失败");
                                                        } else if (result == "cancel") {
                                                                $spa.showErrorMsg("微信公众账号支付取消支付");
                                                        }
                                                });
                                        }
                                });
                        },
                        chooseCoupon:function(ele,discount)
                        {
                                var isChecked=$(ele).prop("checked");
                                var id=$(ele).attr("id");
                                if (cuuid != null && cuuid == id) {//取消单选
                                        $(ele).prop("checked", false);
                                                cuuid=null;
                                                discount=null;
                                        }
                                else
                                {
                                        cuuid=$(ele).prop("id");
                                }

                                if(cuuid!=null)
                                {
                                        $("#showDiscount").text("优惠券减 " + discount + "元").show();
                                        $("#fee").text(totalFee - parseInt(discount));
                                }
                                else
                                {
                                        $("#showDiscount").text('未使用优惠券');
                                        $("#fee").text(totalFee);
                                }
                        },
                        changePayMethod:function(i)
                        {
                                if(i==1)
                                {
                                        $('#CouponList,#btnPay').show(); $('#payCoupon').hide()
                                }
                                else if(i==2)
                                {
                                        $('#payCoupon').show();
                                        $('#CouponList,#btnPay').hide();
                                        cuuid='';$('#CouponNum').val('');
                                        $('#showDiscount').text('使用优惠码');
                                        $('#fee').text(totalFee);
                                }
                        },
                        onDestroy: function () {
                        }
                })
//todo  for test
               if (false) {
                      //  if (!basic.hasOpenId()) {
                        if (!code) {
                                jsonAPI.restful('/api/getAuthorizeURL', {"redirectUrl":location.href}, function (err, result) {
                                        if (jsonAPI.handleErrors(err, result)) {
                                                var url = result.result;
                                               //alert('url:'+url);
                                                window.location.href = url;
                                        }
                                });
                        }
                        else {
                                //alert('code 来啦:' + code);
                               // $module.getOpenId(cb);

                                async.parallel([$module.getOpenId,$module.getPaymentInfo],function(err,result)
                                {
                                        if (jsonAPI.handleErrors(err, result)) {
                                                $spa.configJSSDK();
                                        }
                                        cb&&cb();
                                })

                        }
                }
                else
               {
                      // $module.getPaymentInfo(cb);

                       async.parallel([$module.getPaymentInfo,$module.getCoupon],function(err,result)
                       {
                               if (jsonAPI.handleErrors(err, result)) {
                                       $spa.configJSSDK();
                               }
                               cb&&cb();
                       })
               }

        };
});